package com.qfmy.app.service.novel;

import com.qfmy.app.vo.novel.BookVo;
import com.qfmy.model.entity.query.CategoryQuery;

import java.util.List;

/**
 * @author 清风明月
 * @Package com.qfmy.app.service.novel
 * @date 2025/4/14
 * @description 小说的服务类
 */
@SuppressWarnings("all")
public interface BookService {

    /**
     * 获取小说列表
     * @return
     */
    List<BookVo> getTopThree();

    /**
     * 获取推荐小说列表
     * @return
     */
    List<BookVo> getRecommend();

    /**
     * 获取所有小说列表
     * @param pageNum
     * @param size
     * @return
     */
    List<BookVo> getAll(int pageNum, int size);

    /**
     * 根据类别获取小说
     * @param categoryQuery
     * @return
     */
    List<BookVo> getByCategory(CategoryQuery categoryQuery);

    /**
     * 根据id获取小说
     * @param id
     * @return
     */
    BookVo getById(Long id);

    /**
     * 根据不同的标签分页获取数据
     * @param tag
     * @param pageNum
     * @param size
     * @return
     */
    List<BookVo> getByTag(String tag, int pageNum, int size);

    /**
     * 根据条件搜索小说
     * @param bookQuery
     * @return
     */
    List<BookVo> search(String keyword);

    /**
     * 获取所有的小说
     */
    void indexBooks();

    /**
     * 更新搜索次数
     * @param id
     */
    void updateSearchCount(Long id);

    /**
     * 更新阅读次数
     * @param id
     */
    void updateReadCount(Long id);

    /**
     * 获取热门搜索
     * @param pageNum
     * @param size
     * @return
     */
    List<BookVo> getHotSearch(int pageNum, int size);
}
